8005c310 : 8FA60018  LW      00000000 (a2), 0018 (000085a8 (sp)) [000085c0]
8005c314 : 3C0F8007  LUI     00000001 (t7), 8007 (32775),
8005c318 : 25EF1CB0  ADDIU   80070000 (t7), 80070000 (t7), 1cb0 (7344),
8005c31c : 00067080  SLL     0000000a (t6), 00000001 (a2), 02 (2),
8005c320 : 01CF3821  ADDU    000000be (a3), 00000004 (t6), 80071cb0 (t7),
8005c324 : 8CF80000  LW      00000000 (t8), 0000 (80071cb4 (a3)) [80071cb4]
8005c328 : 10400026  BEQ     00000000 (v0), 00000000 (r0), 8005c3c4,

; REMOVE THIS - blanks out useful sio data (justifier latch detection)
8005c32c : A3020000  SB      00000000 (v0), 0000 (8006d093 (t8)) [8006d093]




player 1 (fixed)
8006d039 = justifier ID
8006d03d = justifier latch
8006d03e = justifier y
8006d040 = justifier x

player 2 (fixed)
8006d08f = justifier ID
8006d093 = justifier latch
8006d094 = justifier y
8006d096 = justifier x


80018ed4 : 27BDFFE8  ADDIU   80071054 (sp), 80071054 (sp), ffe8 (65512),
80018ed8 : AFBF0014  SW      8005d65c (ra), 0014 (8007103c (sp)) [80071050]
80018edc : 0C00DA51  JAL     80036944, 8005d65c (ra),
80018ee0 : AFB00010  SW      80071124 (s0), 0010 (8007103c (sp)) [8007104c]

80018ee4 : 0C00DA69  JAL     800369a4, 80018ee4 (ra),
80018ee8 : 3050FFFF  ANDI    80071124 (s0), 00000000 (v0), ffff (65535),




; gp = player address

; NOTE: tries to latch either gun (if dual guns as player #1)

===> remap ID
80036944 : 8F8406C4  LW      00000001 (a0), 06c4 (8006c1c4 (gp)) [8006c888]
80036948 : 00000000  NOP    
===>


8003694c : 94830000  LHU     00000000 (v1), 0000 (8006d038 (a0)) [8006d038]
80036950 : 34023100  ORI     8006d08e (v0), 00000000 (r0), 3100 (12544),
80036954 : 14620005  BNE     00003100 (v1), 00003100 (v0), 8003696c,
80036958 : 00000000  NOP    

; check latch data (#1)
8003695c : 90820005  LBU     00003100 (v0), 0005 (8006d038 (a0)) [8006d03d]
80036960 : 00000000  NOP    
80036964 : 1440000C  BNE     00000001 (v0), 00000000 (r0), 80036998,
80036968 : 00000000  NOP    



; check latch data #2
8003696c : 3C048007  LUI     8006d038 (a0), 8007 (32775),
80036970 : 8C84C88C  LW      80070000 (a0), c88c (80070000 (a0)) [8006c88c]
80036974 : 00000000  NOP    
80036978 : 94830000  LHU     00003100 (v1), 0000 (8006d08e (a0)) [8006d08e]
8003697c : 34023100  ORI     00000000 (v0), 00000000 (r0), 3100 (12544),
80036980 : 14620006  BNE     00003100 (v1), 00003100 (v0), 8003699c,
80036984 : 00001021  ADDU    00003100 (v0), 00000000 (r0), 00000000 (r0),
80036988 : 90820005  LBU     00000000 (v0), 0005 (8006d08e (a0)) [8006d093]
8003698c : 00000000  NOP    
80036990 : 10400002  BEQ     00000001 (v0), 00000000 (r0), 8003699c,
80036994 : 00001021  ADDU    00000001 (v0), 00000000 (r0), 00000000 (r0),


; return x-data
80036998 : 94820008  LHU     00000001 (v0), 0008 (8006d038 (a0)) [8006d040]
8003699c : 03E00008  JR      80018ee4 (ra),
800369a0 : 00000000  NOP    







; - 6c238 = player # (0/1)
80018f2c : 8F830074  LW      00003100 (v1), 0074 (8006c1c4 (gp)) [8006c238]
80018f30 : 00000000  NOP    





; x conversion (div 2.5) (div 2)
; - ((x / 2.5) / 2) - ()

800176dc : 8C23CC40  LW      00000000 (v1), cc40 (80070000 (at)) [8006cc40]
800176e0 : 00000000  NOP    

; LE1 - skip all this math (in-game)
--->
800176e4 : 00621823  SUBU    00000398 (v1), 00000398 (v1), 00000398 (v0),
800176e8 : 3C026666  LUI     00000398 (v0), 6666 (26214),
800176ec : 34426667  ORI     66660000 (v0), 66660000 (v0), 6667 (26215),
800176f0 : 00620018  MULT    00000000 (v1), 66666667 (v0),
800176f4 : 00005010  MFHI    000000a0 (t2), 00000000 (hi),
800176f8 : 000A1043  SRA     66666667 (v0), 00000000 (t2), 01 (1),
800176fc : 00031FC3  SRA     00000000 (v1), 00000000 (v1), 1f (31),
80017700 : 00431023  SUBU    00000000 (v0), 00000000 (v0), 00000000 (v1),
80017704 : 244200A0  ADDIU   00000000 (v0), 00000000 (v0), 00a0 (160),
--->

80017708 : A4A20014  SH      000000a0 (v0), 0014 (80078c30 (a1)) [80078c44]





8001ab20 : 3C038007  LUI     ffffffef (v1), 8007 (32775),
8001ab24 : 8C63CC40  LW      80070000 (v1), cc40 (80070000 (v1)) [8006cc40]
8001ab28 : 00000000  NOP    

; LE1 - skip all this math (calibration p1)
--->
8001ab2c : 00621823  SUBU    00000043 (v1), 00000043 (v1), 000000a1 (v0),
8001ab30 : 00730018  MULT    ffffffa2 (v1), 66666667 (s3),
8001ab34 : 00004010  MFHI    00000800 (t0), ffffffda (hi),
8001ab38 : 00081043  SRA     000000a1 (v0), ffffffda (t0), 01 (1),
8001ab3c : 00031FC3  SRA     ffffffa2 (v1), ffffffa2 (v1), 1f (31),
8001ab40 : 00431023  SUBU    ffffffed (v0), ffffffed (v0), ffffffff (v1),
8001ab44 : 244200A0  ADDIU   ffffffee (v0), ffffffee (v0), 00a0 (160),
-->
8001ab48 : A7A20028  SH      0000008e (v0), 0028 (801ff890 (sp)) [801ff8b8]




8001ace0 : 8C63CC4C  LW      80070000 (v1), cc4c (80070000 (v1)) [8006cc4c]
8001ace4 : 00000000  NOP    

; LE1 - skip all this math (calibration p2)
--->
8001ace8 : 00621823  SUBU    00000046 (v1), 00000046 (v1), 000000a0 (v0),
8001acec : 00730018  MULT    ffffffa6 (v1), s3),
8001acf0 : 00004010  MFHI    00000800 (t0), ffffffdb (hi),
8001acf4 : 00081043  SRA     000000a0 (v0), ffffffdb (t0), 01 (1),
8001acf8 : 00031FC3  SRA     ffffffa6 (v1), ffffffa6 (v1), 1f (31),
8001acfc : 00431023  SUBU    ffffffed (v0), ffffffed (v0), ffffffff (v1),
8001ad00 : 244200A0  ADDIU   ffffffee (v0), ffffffee (v0), 00a0 (160),
--->
8001ad04 : A7A2005C  SH      0000008e (v0), 005c (801ff890 (sp)) [801ff8ec]






; check on-screen or off-screen - 6c23c / 6c240
800174c8 : 3C018007  LUI     80070014 (at), 8007 (32775),
800174cc : 00240821  ADDU    80070000 (at), 80070000 (at), 00000000 (a0),
800174d0 : 8C22C23C  LW      00000000 (v0), c23c (80070000 (at)) [8006c23c]
800174d4 : 00000000  NOP    
800174d8 : 10400073  BEQ     00000000 (v0), 00000000 (r0), 800176a8,
800174dc : 00921021  ADDU    00000000 (v0), 00000000 (a0), 801ff8d8 (s2),




; LE2 - calibration
8001ab20 : 3C038007  LUI     ffffdfff (v1), 8007 (32775),
8001ab24 : 8C63CC40  LW      80070000 (v1), cc40 (80070000 (v1)) [8006cc40]
8001ab28 : 00000000  NOP    

--> skip math
8001ab2c : 00621823  SUBU    000000d8 (v1), 000000d8 (v1), 000000a0 (v0),
8001ab30 : 00730018  MULT    00000038 (v1), 66666667 (s3),
8001ab34 : 00004010  MFHI    00000800 (t0), 00000016 (hi),
8001ab38 : 00081043  SRA     000000a0 (v0), 00000016 (t0), 01 (1),
8001ab3c : 00031FC3  SRA     00000038 (v1), 00000038 (v1), 1f (31),
8001ab40 : 00431023  SUBU    0000000b (v0), 0000000b (v0), 00000000 (v1),
8001ab44 : 244200A0  ADDIU   0000000b (v0), 0000000b (v0), 00a0 (160),
-->

8001ab48 : A7A20028  SH      000000ab (v0), 0028 (801ff628 (sp)) [801ff650]




; LE2 - calibration
8001acdc : 3C038007  LUI     ffff7fff (v1), 8007 (32775),
8001ace0 : 8C63CC4C  LW      80070000 (v1), cc4c (80070000 (v1)) [8006cc4c]
8001ace4 : 00000000  NOP    

--> skip math
8001ace8 : 00621823  SUBU    000000b0 (v1), 000000b0 (v1), 00000398 (v0),
8001acec : 00730018  MULT    fffffd18 (v1), 66666667 (s3),
8001acf0 : 00004010  MFHI    00000800 (t0), fffffed6 (hi),
8001acf4 : 00081043  SRA     00000398 (v0), fffffed6 (t0), 01 (1),
8001acf8 : 00031FC3  SRA     fffffd18 (v1), fffffd18 (v1), 1f (31),
8001acfc : 00431023  SUBU    ffffff6b (v0), ffffff6b (v0), ffffffff (v1),
8001ad00 : 244200A0  ADDIU   ffffff6c (v0), ffffff6c (v0), 00a0 (160),
-->

8001ad04 : A7A2005C  SH      0000000c (v0), 005c (801ff628 (sp)) [801ff684]
